home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
prolog
/
modprolg
/
mod-prol.lha
/
Prolog
/
Examples
/
slide1.mod
< prev
next >
Wrap
Text File
|
1992-06-09
|
728b
|
25 lines
signature problemsig =
sig
pred s/2 and
goal/1.
end.
structure eightqueens/problemsig =
struct
goal([_,_,_,_,_,_,_,_]).
s(Queens,[Queen|Queens]) :-
member(Queen,[1,2,3,4,5,6,7,8]),
not member(Queen, Queens),
safe([Queen|Queens]).
safe([]).
safe([Queen|Others]) :-
safe(Others),
noattack(Queen,Others,1).
noattack(_,[],_).
noattack(Y,[Y1|Ylist],Xdist) :-
Y1 - Y =\= Xdist,
Y - Y1 =\= Xdist,
Dist1 is Xdist + 1,
noattack(Y, Ylist, Dist1).
end.